package com.peas.platform.module.icims.expenditure.expenses.adapter.repository.po;

import java.util.*;
import java.math.*;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.peas.platform.common.core.annotation.Comment;
import com.peas.platform.framework.mybatisplus.po.BasePo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.JdbcType;
import javax.validation.constraints.*;

// 报账单明细(培训)
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "`tbl_expenditure_reimbursement_training`")
public class ExpenditureReimbursementTrainingPo extends BasePo {

    // 报账单ID
    // （报账单表）外键
    @Comment(value = "报账单ID")
    @TableField(value = "`expenditure_reimbursement_id`", jdbcType = JdbcType.BIGINT)
    private Long expenditureReimbursementId;

    // 培训通知文号
    @Comment(value = "培训通知文号")
    @Size(max = 200, message = "培训通知文号不能超过200个字符")
    @TableField(value = "`training_notice`", jdbcType = JdbcType.VARCHAR)
    private String trainingNotice;

    // 培训地点
    @Comment(value = "培训地点")
    @Size(max = 200, message = "培训地点不能超过200个字符")
    @TableField(value = "`training_address`", jdbcType = JdbcType.VARCHAR)
    private String trainingAddress;

    // 培训部门
    @Comment(value = "培训部门")
    @Size(max = 500, message = "培训部门不能超过500个字符")
    @TableField(value = "`training_department`", jdbcType = JdbcType.VARCHAR)
    private String trainingDepartment;

    // 工作人员数
    @Comment(value = "工作人员数")
    @TableField(value = "`training_workers`", jdbcType = JdbcType.INTEGER)
    private Integer trainingWorkers;

    // 报道时间
    @Comment(value = "报道时间")
    @TableField(value = "`training_start`", jdbcType = JdbcType.TIMESTAMP)
    private Date trainingStart;

    // 撤离时间
    @Comment(value = "撤离时间")
    @TableField(value = "`training_end`", jdbcType = JdbcType.TIMESTAMP)
    private Date trainingEnd;

    // 票据数
    @Comment(value = "票据数")
    @TableField(value = "`training_invoices`", jdbcType = JdbcType.INTEGER)
    private Integer trainingInvoices;

    // 培训人数
    @Comment(value = "培训人数")
    @TableField(value = "`training_peoples`", jdbcType = JdbcType.INTEGER)
    private Integer trainingPeoples;

    // 培训天数
    @Comment(value = "培训天数")
    @TableField(value = "`training_days`", jdbcType = JdbcType.INTEGER)
    private Integer trainingDays;

    // 讲课费
    @Comment(value = "讲课费")
    @TableField(value = "`amount_teach`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountTeach;

    // 场地费
    @Comment(value = "场地费")
    @TableField(value = "`amount_place`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountPlace;

    // 住宿费
    @Comment(value = "住宿费")
    @TableField(value = "`amount_hotel`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountHotel;

    // 伙食费
    @Comment(value = "伙食费")
    @TableField(value = "`amount_catering`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountCatering;

    // 其他费(资料费、交通费等)
    @Comment(value = "其他费(资料费、交通费等)")
    @TableField(value = "`amount_other`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountOther;

}
